Computer viruses and malicious software (called malware) have existed for decades in computing environments. One example of known methods that are used to detect malware is memory scanning of applications for malware signatures. However, present methods can only be used for known malware. These methods are not effective against unknown malware or exploits. Therefore, improvements to the computer security are needed.
In computer security, an exploit is from victim point of view an object that causes software to behave in an unexpected and/or unwanted manner. The object is usually something that the software is unable to deal with. For example, a string of characters that does not fit an expected pattern or a series of commands that the software is unable to correctly execute.
When an exploit forces the software to behave unexpectedly, an attacker can take an advantage of the disruption to perform other, usually malicious actions that would not normally be permitted. For example, an attacker may exploit one software on a computer in such a way that a second software is silently installed without authorization from the user or administrator of the target device.